import request from '@/utils/request'

// 分页查询文件列表
export function listFile(data) {
  return request({
    url: 'fileapi/File/List',
    method: 'post',
    data: data
  })
}

// 根据ID查询文件详情
export function getFile(fileId) {
  return request({
    url: 'fileapi/File/GetData',
    method: 'post',
    data: { Value: fileId }
  })
}

// 新增文件
export function addFile(data) {
  return request({
    url: 'fileapi/File/AddData',
    method: 'post',
    data: data
  })
}

// 修改文件
export function updateFile(data) {
  return request({
    url: 'fileapi/File/UpdateData',
    method: 'post',
    data: data
  })
}

// 删除文件
export function delFile(ids) {
  return request({
    url: 'fileapi/File/Remove',
    method: 'post',
    data: { Value: ids }
  })
}

// 校验文件访问权限
export function checkFileAccess(data) {
  return request({
    url: 'fileapi/File/CheckAccess',
    method: 'post',
    data: data
  })
}

// 分片上传初始化
export function initMultipartUpload(data) {
  return request({
    url: 'fileapi/File/InitMultipartUpload',
    method: 'post',
    data: data
  })
}

// 上传分片
export function uploadPart(data, config = {}) {
  return request({
    url: 'fileapi/File/UploadPart',
    method: 'post',
    data: data,
    headers: { 'Content-Type': 'multipart/form-data' },
    ...config
  })
}

// 合并分片
export function completeMultipartUpload(data) {
  return request({
    url: 'fileapi/File/CompleteMultipartUpload',
    method: 'post',
    data: data
  })
}

// 获取文件下载统计
export function getFileDownloadStats(data) {
  return request({
    url: 'fileapi/File/GetDownloadStats',
    method: 'post',
    data: data
  })
}

// 批量下载文件
export function batchDownloadFile(ids) {
  return request({
    url: 'fileapi/File/BatchDownload',
    method: 'post',
    data: { Value: ids.join(',') }
  })
}